package com.yr.ryjk.consult.service;

import java.lang.reflect.InvocationTargetException;
import java.util.Map;

import com.yr.ryjk.consult.entity.Consult;

public interface IConsultService {
	/**
	 * 添加咨询
	 * @param consult
	 * @param phone
	 * @return
	 * @throws InvocationTargetException 
	 * @throws IllegalAccessException 
	 */
	Map<String, Object> addConsult(Consult consult, String phone) throws IllegalAccessException, InvocationTargetException;
	
	/**
	 * 获取详细内容
	 * @param pageNo
	 * @param pageSize
	 * @param id
	 * @return
	 */
	Map<String, Object> getContentList(int pageNo, int pageSize, String id);
	
	/**
	 * 添加回复
	 * @param id
	 * @param type
	 * @param answerContent
	 * @param picUrls
	 * @return
	 */
	Map<String, Object> addReply(String id, Integer type,int isPush,String answerContent,
			String picUrls);
	
	/**
	 * 分页查询用户列表
	 * @param pageNo 当前页码
	 * @param pageSize 每页条数
	 * @param status 状态
	 * @param token 
	 * @return
	 */
	Map<String, Object> getListOfUser(int pageNo, int pageSize, int status, String token);
	
	/**
	 * 分页查询用户列表
	 * @param pageNo 当前页码
	 * @param pageSize 每页条数
	 * @param status 状态
	 * @param token 
	 * @return
	 */
	Map<String, Object> getListOfDoctor(int pageNo, int pageSize, int status, String token);
	
	/**
	 *用户答应结束咨询接口
	 * @param id
	 * @param jpushType 3或7或6(倒计时程序调用时传递过来6)
	 */
	void updateEnd(String id, String jpushType);

	/**
	 * 获取医生和病人之间的之前的咨询记录
	 * @param pageNo
	 * @param pageSize
	 * @param consultId
	 * @return
	 */
	Object getListHistory(int pageNo, int pageSize, String consultId);
 
	/**
	 * 医生请求结束咨询接口
	 * @param id
	 */
	void askForEnd(String id);
	
	/**
	 * 用户拒绝结束咨询接口
	 * @param id
	 */
	void refuseEnd(String id);

	/**
	 * app用户获取未评价的咨询
	 * @param pageNo
	 * @param pageSize
	 * @param token
	 * @return
	 */
	Object getUnScoreList(int pageNo, int pageSize, String token);
	
	/**
	 * 删除咨询记录
	 * @param id
	 */
	void deleteConsultById(String id);

	/**
	 * 用户获取未处理的咨询数量
	 * @param token
	 * @return
	 */
	int getUnHandledCount(String token);
}
